package vista;
import java.awt.BorderLayout;
import java.awt.LayoutManager;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.List;

import javax.swing.ComboBoxModel;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JOptionPane;

import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;

import javax.swing.WindowConstants;
import javax.swing.table.AbstractTableModel;
import modelo.Tienda;


/**
* This code was edited or generated using CloudGarden's Jigloo
* SWT/Swing GUI Builder, which is free for non-commercial
* use. If Jigloo is being used commercially (ie, by a corporation,
* company or business for any purpose whatever) then you
* should purchase a license for each developer using Jigloo.
* Please visit www.cloudgarden.com for details.
* Use of Jigloo implies acceptance of these licensing terms.
* A COMMERCIAL LICENSE HAS NOT BEEN PURCHASED FOR
* THIS MACHINE, SO JIGLOO OR THIS CODE CANNOT BE USED
* LEGALLY FOR ANY CORPORATE OR COMMERCIAL PURPOSE.
*/
public class VentanaCargarProductos extends javax.swing.JFrame {
	private static VentanaCargarProductos inst;
	private JPanel jpContenedorProducto;
	private JLabel lblRegistroProducto;
	private JLabel lblCodigoProducto;
	private JTextField txtPrecioProducto;
	private JButton btnCargarProducto;
	private JButton btnBuscarProducto;
	private JLabel lblCodigoRifTiendaProducto;
	private JButton btnSalirProducto;
	private JButton btnLimpiarProducto;
	private JLabel lblRifTiendaProducto;
	private JComboBox cmbRifTienda;
	private JLabel lblRifTienda;
	private JButton btnGuardarProducto;
	private JTable tblProducto;
	private JScrollPane scpProducto;
	private JLabel lblPrecioProducto;
	private JTextField txtDescripcionProducto;
	private JTextField txtCodigoProducto;
	private JLabel lblNombreCodigo;
	private LayoutManager jpContenedorProductoLayout;
	private ComboBoxModel cmbRifTiendaFiguraModel;
	private ArrayList<String> rif;

	/**
	* Auto-generated main method to display this JFrame
	*/

	
	public VentanaCargarProductos() {
		super();
		initGUI();
	}
	

	public static VentanaCargarProductos getInstancia() {
		if (inst == null)
		{	
			inst = new VentanaCargarProductos();
		}
		return inst;
	}
	
	
	private void initGUI() {
		try {
			setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
			this.setTitle("Registro Productos");
			{
				jpContenedorProducto = new JPanel();
				getContentPane().add(jpContenedorProducto, BorderLayout.CENTER);
				jpContenedorProducto.setLayout(null);
				jpContenedorProducto.setLayout(jpContenedorProductoLayout);
				{
					lblRegistroProducto = new JLabel();
					jpContenedorProducto.add(lblRegistroProducto);
					lblRegistroProducto.setText("Registro Productos");
					lblRegistroProducto.setBounds(239, 12, 199, 23);
					lblRegistroProducto.setFont(new java.awt.Font("Bitstream Charter",0,24));
				}
				{
					lblCodigoProducto = new JLabel();
					jpContenedorProducto.add(lblCodigoProducto);
					lblCodigoProducto.setText("Codigo:");
					lblCodigoProducto.setBounds(24, 74, 77, 15);
				}
				{
					lblNombreCodigo = new JLabel();
					jpContenedorProducto.add(lblNombreCodigo);
					lblNombreCodigo.setText("Nombre: ");
					lblNombreCodigo.setBounds(24, 115, 77, 15);
				}
				{
					txtCodigoProducto = new JTextField();
					jpContenedorProducto.add(txtCodigoProducto);
					txtCodigoProducto.setBounds(129, 71, 199, 22);
					txtCodigoProducto.setVisible(false);
				}
				{
					txtDescripcionProducto = new JTextField();
					jpContenedorProducto.add(txtDescripcionProducto);
					txtDescripcionProducto.setBounds(129, 105, 199, 22);
					txtDescripcionProducto.setVisible(false);
				}
				{
					lblPrecioProducto = new JLabel();
					jpContenedorProducto.add(lblPrecioProducto);
					lblPrecioProducto.setText("Precio:");
					lblPrecioProducto.setBounds(24, 142, 77, 15);
				}
				{
					txtPrecioProducto = new JTextField();
					jpContenedorProducto.add(txtPrecioProducto);
					txtPrecioProducto.setBounds(132, 139, 194, 21);
					txtPrecioProducto.setVisible(false);
				}
				{
					lblRifTienda = new JLabel();
					jpContenedorProducto.add(lblRifTienda);
					lblRifTienda.setText("Tienda");
					lblRifTienda.setBounds(24, 45, 77, 15);
				}
				{
					cmbRifTienda = new JComboBox();
					jpContenedorProducto.add(cmbRifTienda);
					cmbRifTienda.setBounds(129, 41, 199, 22);
					cmbRifTienda.setVisible(false);

				}
				{
					scpProducto = new JScrollPane();
					jpContenedorProducto.add(scpProducto);
					scpProducto.setBounds(12, 195, 583, 160);
					{
						tblProducto = new JTable();
						scpProducto.setViewportView(tblProducto);
					}
				}
				{
					btnCargarProducto = new JButton();
					jpContenedorProducto.add(btnCargarProducto);
					btnCargarProducto.setText("Cargar Producto");
					btnCargarProducto.setBounds(367, 71, 163, 22);
				}
				{
					btnGuardarProducto = new JButton();
					jpContenedorProducto.add(btnGuardarProducto);
					jpContenedorProducto.add(getLblRifTiendaProducto());
					jpContenedorProducto.add(getBtnLimpiarProducto());
					jpContenedorProducto.add(getBtnSalirProducto());
					jpContenedorProducto.add(getLblCodigoRifTiendaProducto());
					jpContenedorProducto.add(getBtnBuscarProducto());
					btnGuardarProducto.setText("Guardar Producto");
					btnGuardarProducto.setBounds(367, 105, 163, 22);
					btnGuardarProducto.setVisible(false);
				}
			}
			pack();
			this.setSize(627, 397);
		} catch (Exception e) {
		    //add your error handling code here
			e.printStackTrace();
		}
	}
	
	
	public void Tiendas(Tienda[] tiendas){
		ComboBoxModel cmbRifTienda = new DefaultComboBoxModel(tiendas);
		this.cmbRifTienda.setModel(cmbRifTiendaFiguraModel);
	}
	
	public void mostrarMensaje(String mensaje) {
		JOptionPane.showMessageDialog(this, mensaje);
	}
	
	public String getPrecioProducto(){
		return txtPrecioProducto.getText();
	}
	
	public String getDescripcionProducto(){
		return txtDescripcionProducto.getText();
	}
	public String getCodigoProducto(){
		return txtCodigoProducto.getText();	
	}
	
	private JLabel getLblRifTiendaProducto() {
		if(lblRifTiendaProducto == null) {
			lblRifTiendaProducto = new JLabel();
			lblRifTiendaProducto.setBounds(280, 157, 28, 18);
		}
		return lblRifTiendaProducto;
	}
	
	public void setTiendasComboBox(List<String> nombre){
		
			cmbRifTienda.removeAll();
			cmbRifTienda.addItem("Seleccione una opcion");
			for(int i = 0; i < nombre.size();i++){
				cmbRifTienda.addItem(nombre.get(i));
			}

	}
	
	public String getCodigoRifTiendaProducto(String nombre, ArrayList<Tienda> tiendas){
		String rif = "";
		for(int i = 0; i < tiendas.size();i++){
			 
		 if (tiendas.get(i).getNombre().equalsIgnoreCase(nombre)){
		  
			 rif = tiendas.get(i).getRif();
		}
	
	}
		return rif;
}
	
	public void setListadoProdcuto(AbstractTableModel abstractTableModel){
		tblProducto.setModel(abstractTableModel);
	}


	public void agregarListener(ActionListener actionListener) {
	     
		btnCargarProducto.addActionListener(actionListener);
		btnGuardarProducto.addActionListener(actionListener);
		btnLimpiarProducto.addActionListener(actionListener);
		btnSalirProducto.addActionListener(actionListener);
		btnBuscarProducto.addActionListener(actionListener);
	}

	public void habilitarGuardarProducto(boolean option){
		this.btnGuardarProducto.setEnabled(option);
		this.btnGuardarProducto.setVisible(option);
	}
	
	public void habilitarCargarProducto(boolean option){
		this.btnCargarProducto.setEnabled(option);
		this.btnCargarProducto.setVisible(option);
	}
	
	public void habilitarLimpiarProducto(boolean option){
		this.btnLimpiarProducto.setVisible(option);
		this.btnLimpiarProducto.setEnabled(option);
		
	}
	
	public void habilitarBuscarProducto(boolean option){
		btnBuscarProducto.setEnabled(option);
		btnBuscarProducto.setVisible(option);
	}

	public void cambiarCargarProducto(){
		 this.btnCargarProducto.setText("Agregar Producto");
	}
	
	public void bloquearVisible(boolean boo){
		
		txtDescripcionProducto.setVisible(boo);
		txtPrecioProducto.setVisible(boo);	
	}
	
	public void bloqueraEnabled(boolean boo){
		txtDescripcionProducto.setEnabled(boo);
		txtPrecioProducto.setEnabled(boo);
	}
	
	public void limpiarCamposProducto() {
		this.txtCodigoProducto.setText("");
		this.txtDescripcionProducto.setText("");
		this.txtPrecioProducto.setText("");
		this.cmbRifTienda.setToolTipText("Seleccionar Opcion");
		this.cmbRifTienda.setSelectedIndex(0);
		this.lblCodigoRifTiendaProducto.setText("");
		// TODO Auto-generated method stub

	}

	public String getRifTienda() {
		return 	cmbRifTienda.getSelectedItem().toString();
		// TODO Auto-generated method stub
		
	}
	
	
	private JButton getBtnLimpiarProducto() {
		if(btnLimpiarProducto == null) {
			btnLimpiarProducto = new JButton();
			btnLimpiarProducto.setText("Limpiar");
			btnLimpiarProducto.setBounds(367, 134, 163, 22);
			btnLimpiarProducto.setVisible(false);
		}
		return btnLimpiarProducto;
	}
	
	private JButton getBtnSalirProducto() {
		if(btnSalirProducto == null) {
			btnSalirProducto = new JButton();
			btnSalirProducto.setText("Salir");
			btnSalirProducto.setBounds(522, 14, 78, 22);
		}
		return btnSalirProducto;
	}
	
	public String datosLlenos() {
		// TODO Auto-generated method stub
		if(this.getCodigoProducto().equals("") || this.getDescripcionProducto().equals("") || this.getPrecioProducto().equals("")){
			return " ";
		}
		return "llenos";
	}
	
	private JLabel getLblCodigoRifTiendaProducto() {
		if(lblCodigoRifTiendaProducto == null) {
			lblCodigoRifTiendaProducto = new JLabel();
			lblCodigoRifTiendaProducto.setBounds(287, 154, 81, 21);
			lblCodigoRifTiendaProducto.setVisible(false);
			lblCodigoRifTiendaProducto.setText("1");
		}
		return lblCodigoRifTiendaProducto;
	}
	
	private JButton getBtnBuscarProducto() {
		if(btnBuscarProducto == null) {
			btnBuscarProducto = new JButton();
			btnBuscarProducto.setText("Buscar");
			btnBuscarProducto.setBounds(334, 42, 83, 22);
			btnBuscarProducto.setVisible(false);
		}
		return btnBuscarProducto;
	}


	public void habilitarProducto(boolean boo1, boolean boo2) {
		txtCodigoProducto.setEnabled(boo1);
		txtCodigoProducto.setVisible(boo2);
		
		cmbRifTienda.setEnabled(boo1);
		cmbRifTienda.setVisible(boo2);
		// TODO Auto-generated method stub
	}


	public void setDatosExistente(String descr, float precio) {
		// TODO Auto-generated method stub
		String pre = Float.toString(precio);
		
	this.txtDescripcionProducto.setText(descr);	
	this.txtPrecioProducto.setText(pre);
	}

}
